package com.example.myapplication.slice;

import com.example.myapplication.ResourceTable;
import com.example.myapplication.beans.Address;
import com.example.myapplication.beans.Order;
import com.example.myapplication.beans.ResultVO;
import com.example.myapplication.beans.Shopcart;
import com.example.myapplication.utils.ApiUtil;
import com.example.myapplication.utils.DataBaseUtil;
import com.example.myapplication.utils.HttpRequestUtil;
import com.example.myapplication.utils.LoadNetImageUtil;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.components.*;
import ohos.app.dispatcher.TaskDispatcher;
import ohos.app.dispatcher.task.TaskPriority;

import java.util.List;

public class OrderAddAbilitySlice extends AbilitySlice {

    private Gson gson = new Gson();
    //设置默认支付方式
    int payType = 0;//默认微信支付
    //用于提交订单的信息传递
    private Order order = new Order();
    //提交订单使用
    String cidStr = null;//用来记录当前订单中所包含的购物车id列表


    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        setUIContent(ResourceTable.Layout_ability_order_add);


//        //1.接收传递的CIDS（传递的购物车信息）
//        if (intent != null){
//            cidStr = (String) intent.getParams().getParam("cids");//接收的数据为[11,12,13]
//            List<Integer> cids = gson.fromJson(cidStr,new TypeToken<List<Integer>>(){}.getType());
//            //System.out.println(cids);
//
//            TaskDispatcher globalTaskDispatcher = getGlobalTaskDispatcher(TaskPriority.DEFAULT);
//            String token = DataBaseUtil.getValue("token",this);
//            String userId = DataBaseUtil.getValue("userId",this);
//            //查询选中的购物车中的商品信息
//            globalTaskDispatcher.asyncDispatch(() -> {
//                //拼接多个购物车记录ID：多个购物车ID拼接成一个字符串，使用“,”分割
//                String cidsStr = "";
//                for (int i = 0; i < cids.size(); i++) {
//                    if (i == 0){
//                        cidsStr = cidsStr + cids.get(i);
//                    }else {
//                        cidsStr = cidsStr + "," + cids.get(i);
//                    }
//                }
//                String urlString1 = ApiUtil.BASE_PATH+"shopcart/...?cids="+cidsStr;
//                //System.out.println(urlString1);
//                String s1 = HttpRequestUtil.sendGetRequestWithToken(this, urlString1, token);
//                //System.out.println(s1);
//                //显示商品列表
//                ResultVO vo = gson.fromJson(s1,ResultVO.class);
//                if (vo.getCode() == 200){
//                    String jsonStr = gson.toJson(vo.getData());
//                    List<Shopcart> shopcarts = gson.fromJson(jsonStr,new TypeToken<List<Shopcart>>(){}.getType());
//
//                    //放在UI线程中
//                    getUITaskDispatcher().asyncDispatch(() -> {
//                        //table组件布局，显示商品列表的table
//                        TableLayout table = findComponentById(ResourceTable.Id_order_add_list_table);
//                        table.removeAllComponents();
//                        //获取显示订单总金额的text组件
//                        Text priceText = findComponentById(ResourceTable.Id_order_total_price_text);
//                        double totalPrice = 0.0;
//
//
//                        for (int i = 0; i < shopcarts.size(); i++) {
//                            //数据
//                            Shopcart shopcart = shopcarts.get(i);
//                            //模板
//                            Component template = LayoutScatter.getInstance(this).parse(ResourceTable.Layout_order_item_template, null, false);
//                            Image image = template.findComponentById(ResourceTable.Id_order_item_image);
//                            Text text1 = template.findComponentById(ResourceTable.Id_order_item_name_text);
//                            Text text2 = template.findComponentById(ResourceTable.Id_order_item_price_text);
//                            Text text3 = template.findComponentById(ResourceTable.Id_order_item_number_text);
//                            Text text4 = template.findComponentById(ResourceTable.Id_order_item_total_price_text);
//                            //数据渲染
//                            //String imgUrl = ApiUtil.IMG_BASE_PATH+shopcart.getProductImg();
//                            //LoadNetImageUtil.loadImg(this,imgUrl,image);
//                            //设置默认图片
//                            image.setPixelMap(ResourceTable.Media_L1);
//                            text1.setText(shopcart.getProductName());
//                            text2.setText(shopcart.getProductPrice()+"");
//                            text3.setText(shopcart.getCartNum());
//                            //计算每个商品的总金额 = 商品数量*商品单价
//                            double price = Integer.parseInt(shopcart.getCartNum()) * shopcart.getProductPrice();
//                            text4.setText(price+"");
//                            //所有商品的总金额
//                            totalPrice += price;
//                            table.addComponent(template);
//                        }
//                        //将订单总金额设置到text组件中
//                        priceText.setText("￥ "+totalPrice);
//                        //将商品信息用于提交订单中
//                        order.setActualAmount(totalPrice);
//                        order.setTotalAmount(totalPrice);
//                    });
//                }
//            });
//
//            //查询当前用户的地址信息
//            globalTaskDispatcher.asyncDispatch(() -> {
//                String urlString2 = ApiUtil.BASE_PATH+"useradd/...?userId="+userId;
//                String s2 = HttpRequestUtil.sendGetRequestWithToken(this, urlString2, token);
//                //System.out.println(s2);
//                //显示地址信息
//                ResultVO resultVO = gson.fromJson(s2, ResultVO.class);
//                if (resultVO.getCode() == 200){
//                    List<Address> addrs = gson.fromJson(gson.toJson(resultVO.getData()),new TypeToken<List<Address>>(){}.getType());
//                    if (addrs != null && addrs.size()>0){
//                        getUITaskDispatcher().asyncDispatch(() -> {
//                            //从地址列表获取默认地址
//                            Address addr = addrs.get(0);
//                            for (int i = 0; i < addrs.size(); i++) {
//                                //如果是默认地址
//                                if (addrs.get(i).getCommonAddr() == 1){
//                                    addr = addrs.get(i);
//                                    break;
//                                }
//                            }
//                            //将默认地址信息显示到界面
//                            Text text1 = findComponentById(ResourceTable.Id_addr_name_text);
//                            Text text2 = findComponentById(ResourceTable.Id_addr_detail_text);
//                            //显示收货人姓名时，同时将收货人的手机号显示出来
//                            String tel = addr.getReceiverMobile();
//                            //对手机号进行隐私处理
//                            tel = tel.substring(0,3)+"****"+tel.substring(7);
//                            text1.setText(addr.getReceiverName() + "  "+ tel);
//                            String addrStr = addr.getProvince()+" "+addr.getCity()+" "+addr.getArea()+" "+addr.getAddr();
//                            text2.setText(addrStr);
//                            //将用户基础信息添加到订单中
//                            order.setReceiverAddress(addrStr);
//                            order.setReceiverMobile(addr.getReceiverMobile());
//                            order.setReceiverName(addr.getReceiverName());
//
//                        });
//                    }
//
//                }
//            });
//        }

//        //2.监听支付方式的单选按钮
//        RadioContainer radioContainer = findComponentById(ResourceTable.Id_pay_type_radioContainer);
//        radioContainer.setMarkChangedListener((container,i) -> {
//            //i表示选中单选按钮的索引 0:微信 1:支付宝 2:银联
//            payType = i;
//            order.setPayType(payType);
//            //System.out.println(payType);
//        });

//        //3.提交订单
//        Button btn = findComponentById(ResourceTable.Id_order_add_button);
//        btn.setClickedListener(component -> {
//            //获取订单信息(总金额、收货人姓名、收货人电话、收货人地址、支付方式）
//            //订单对象
//            Text orderRemarkText = findComponentById(ResourceTable.Id_order_remark_text);
//            order.setOrderRemark(orderRemarkText.getText());
//            //用户ID
//            String userId = DataBaseUtil.getValue("userId",this);
//            order.setUserId(userId);
//            //当前订单选择的购物车ID
//            //获取token
//            String token = DataBaseUtil.getValue("token",this);
//
//            //提交到服务器订单添加接口
//            getGlobalTaskDispatcher(TaskPriority.DEFAULT).asyncDispatch(() -> {//访问网络需要放在线程之中
//                String urlString = ApiUtil.BASE_PATH + "order/add?cids=" + cidStr.substring(1,cidStr.length()-1);//去掉中括号
//                String jsonStr = gson.toJson(order);
//                String s = HttpRequestUtil.sendPostRequestWithTakenWithData(this, urlString, token, jsonStr);
//                System.out.println(s);
//                //当订单提交成功之后，返回支付短连接，在移动应用中通常不会显示二维码，而是直接调用微信，支付宝进行支付
//                //由于当前鸿蒙系统关于调用微信/支付宝接口还未实现，此处先搁置此功能
//            });
//
//        });


    }
}
